package main

import (
	"fmt"
)

/**
执行用时：16 ms, 在所有 Go 提交中击败了15.08%的用户
内存消耗：3 MB, 在所有 Go 提交中击败了74.52%的用户
 */
func romanToInt(s string) int {
	hash := make(map[byte]int)
	hash['I'], hash['V'] = 1, 5
	hash['X'], hash['L'] = 10, 50
	hash['C'], hash['D'] = 100, 500
	hash['M'] = 1000

	res := 0
	for i := 0; i < len(s); i++ {
		if i + 1 < len(s) && hash[s[i]] < hash[s[i + 1]] {
			res -= hash[s[i]]
		} else {
			res += hash[s[i]]
		}
	}
	return res
}

func main() {
	fmt.Println(romanToInt("LVIII"))  // 58
}
